package cn.dengta.webapp.user.vo;

import java.util.Map;
import javax.annotation.Nullable;

import cn.dengta.webapp.base.vo.AbstractVO;
import cn.dengta.webapp.user.entity.Photo;
import cn.dengta.webapp.user.entity.Photo.BizType;
import lombok.Getter;
import lombok.Setter;
import me.codeplayer.util.*;

@Setter
@Getter
public class PhotoVO extends AbstractVO<Photo> {

	/** 类型 0-图片 1-视频 */
	private BizType type;
	/** 用户ID */
	private Long userId;
	/** 图片地址 */
	private String images;
	/** 是否封面 */
	private Integer isCover;
	/** 是否可标记 */
	public Boolean canMark;
	/** 是否已标记 */
	public Boolean isMarked;
	/**
	 * 聊郁新版才会有
	 *
	 * @see cn.dengta.webapp.user.model.UserInfoSupply
	 */
	private Integer tagIndex;
	/** 用户 */
	public Map<String, Object> user;

	public static PhotoVO from(@Nullable Photo source) {
		return copy(source, PhotoVO::new);
	}

	public Integer getType() {
		return X.map(type, BizType::getValue);
	}

	public String getType_() {
		return X.map(type, BizType::getLabel);
	}

	public Object getVideos() {
		return BizType.VIDEO == type && StringUtil.notEmpty(images) ? JSONUtil.parseObject(images, VideoVO.class) : null;
	}

	public Object getImages() {
		return BizType.PHOTO == type || BizType.PRIVATE_PHOTO == type ? images : null;
	}

	public String getAddTime_() {
		return super.getAddTime_();
	}

}
